﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Entidades.Sistema.Distribucion.CoR
{
    public class ServicioCargaLiviana : ManejadorDespacho
    {
        static ServicioCargaLiviana _instancia = new ServicioCargaLiviana();

		// Constructor privado.
        private ServicioCargaLiviana()
            : base(ServicioCargaPesada.Instancia)
		{}

		// Expone la única instancia.
        public static ServicioCargaLiviana Instancia
		{
			get { return _instancia; }
		}

		// Este método procesa la solicitud.
        public override TipoDeServicio Enviar(decimal peso, decimal distancia)
		{
			// Si el envío es apto para este servicio, se maneja la solicitud... 
            if (peso <= 3000)
			{
                TipoDeServicio t = new TipoDeServicio();
                t.retorno = true;
                t.servicio = EnumTipoServicioDespacho.CargaLiviana;
                return t;
			}
			else
			{
				// ...en caso contrario se delega al sucesor en la cadena.
                return base.Enviar(peso, distancia);
			}
		}
        public override string ToString()
        {
            return "ServicioCargaLiviana";
        }
    }
}
